1. Field of the Invention
The present invention relates to communication networks and, more particularly, to a method and apparatus for facilitating fulfillment of web-service requests on a communication network, for example by enabling load balancing of the requests to resources and tracking the requests on the resources.
2. Description of the Related Art
Data communication networks may include various computers, servers, nodes, routers, switches, bridges, hubs, proxies, and other network devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as packets, frames, data cells, segments, or other logical associations of bits/bytes of data, between the network elements by utilizing one or more communication links between the network elements. A particular protocol data unit may be handled and modified by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
Web servers are conventionally used to provide web pages in response to requests for content from network users. As networks have evolved, content switches were developed to provide enhanced services on the network, such as to allow these requests for content to be distributed between several web servers so that no individual web server would be overloaded with user requests. Distributing requests between several web servers has become known as “load balancing.” Several methods have been developed to distribute web user content requests, such as a round-robin method in which the web servers are designated to service requests in a particular order and a modified round-robin method in which particular web servers are designated more frequently than other web servers. Since the user-generated requests generally all involve transactions that are of relatively uniform size and can be handled in a real-time manner, this type of load balancing scheme generally works fairly well for user-to-network interactions.
As networks have evolved, the concept of web-service has been developed. Web-service is a mechanism to support computer-to-computer transactions. These transactions may involve relatively complex computations, database accesses, and may require other network transactions to be generated or invoked. For example, a web-service may enable a computerized inventory system to maintain an inventory log, interrogate depletion of the inventory at various stations or monitoring points, and order new inventory by interfacing another computing system as necessary. Typically, conventional web-service use Simple Object Access Protocol (SOAP) and extensible Markup Language (XML) to initiate and participate in computer-to-computer transactions, although the invention discussed below will not be limited to only using these particular protocols.
As the transactions become more complex, and more resource and time intensive, a simple round-robin or modified round-robin approach becomes insufficient. Specifically, it may be that a particular transaction requires a significant amount of processor time whereas other transactions require significantly less processor time. As networks become more diverse, tasking the client application with selecting an appropriate server is not feasible as often the clients don't have the capability to monitor server loads and request specific servers, or are not provided with sufficient information to allow them to make an informed decision. Accordingly, it would be advantageous to enable web-service requests to be load balanced across web servers forming the web resources more intelligently.
Additionally, as web-service requests increase in size and complexity, it may become necessary to split the requests into several segments and split those segments between several different servers. Similarly, a single web-service request may spawn other sub-requests that need to be serviced by other servers or on other resources. In this environment, it would be advantageous to enable web-service requests to be managed, monitored, and/or tracked so that progress of the request may be determined across the several servers and the network could provide update responses to the client regardless of the platform being used to implement the request.